/**
 * 缓存工具模块
 * const { cache_load, cache_save, cache_remove } = require('../../lib/cache.js')
 */

// 默认缓存时间：10min（单位:微秒 = 毫秒 * 1000）
const DEFAULT_EXPIRES = 10 * 60 * 1000

/**
 * 设置缓存(同步)
 * expires: 缓存毫秒数
 */
function save(key, value, expires = DEFAULT_EXPIRES) {
  if (!key || !value || expires <= 0) {
    return
  }
  value = {
    expires: +new Date() + expires * 1000,
    value: value
  }
  wx.setStorageSync(String(key), value)
}

/**
 * 获取缓存(同步)
 */
function load(key) {
  if (!key) {
    return null
  }
  var now = +new Date()
  var cache = wx.getStorageSync(String(key))
  if (cache && cache.expires > now) {
    return cache.value
  }
  return null
}

/**
 * 删除缓存(同步)
 */
function remove(keys) {
  if (!keys) {
    return
  }
  keys = typeof keys === 'object' ? keys : [keys]
  keys.forEach(item => {
    wx.removeStorageSync(String(item))
  })
}

module.exports = {
  cache_save: save,
  cache_load: load,
  cache_remove: remove
}